﻿#region Copyright
/* © 2008 George Tsiokos, licensed under the Microsoft Reciprocal License (Ms-RL) */
#endregion
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Comet.ComponentModel {
    public sealed class ImmutableValueWrapper<T> {

		#region Fields (1) 

        private readonly T _value;

		#endregion Fields 

		#region Constructors (1) 

        public ImmutableValueWrapper (T value) {
            _value = value;
        }

		#endregion Constructors 

		#region Properties (1) 

        public T Value {
            get {
                return _value;
            }
        }

		#endregion Properties 

		#region Methods (2) 


		// Public Methods (2) 

        public static implicit operator ImmutableValueWrapper<T> (T value) {
            return new ImmutableValueWrapper<T> (value);
        }

        public static implicit operator T (ImmutableValueWrapper<T> value) {
            return value.Value;
        }


		#endregion Methods 

    }
}